//引入axios
import axios from 'axios';
// /引入nprogress进度条
import nprogress from 'nprogress';
//引入进度条样式
import 'nprogress/nprogress.css';
// messag提升
import { message } from 'antd';
//利用axios的create方法去创建一个axios的实例对象并向外暴露，reques就是axios，只不过是稍微配置了一下
const requests = axios.create({
  //配置对象
  //基础路径，发请求的时候，路径当中都会出现api
  baseURL: 'http://121.42.230.80',
  //代表请求超时的事件为5s
  timeout: 5000,
});
//请求拦截器:在请求发出去之前，请求拦截器可以检测到，可以在请求发出去之前做一些事情
requests.interceptors.request.use(
  (config) => {
    //config:配置对象，对象里面有一个属性很重要，headers请求头
    config.headers.Authorization = sessionStorage.getItem('token');
    //进度条开始
    nprogress.start();
    return config;
  },
  (error) => {
    return Promise.reject(new Error(error));
  }
);
//响应拦截器
requests.interceptors.response.use(
  //成功的回调
  (response) => {
    if (response.data.code !== '00000')
      message.open({ type: 'error', content: response.data.msg });
    //进度条结束
    nprogress.done();
    return Promise.resolve(response.data);
  },
  //失败的回调
  (error) => {
    return Promise.reject(new Error(error));
  }
);
// get请求
const get = (url, params) => {
  return requests.get(url, { params });
};
// post请求
const post = (url, data) => {
  return requests.post(url, data);
};
export { get, post };
